#pragma once

#include "iostream"
#include "vector"
#include "algorithm"
#include "TypeDefin.h"
using namespace std;
/*HJJ QQ479287006
 *给你一个二叉搜索树的根节点 root ，返回 树中任意两不同节点值之间的最小差值 。

差值是一个正数，其数值等于两值之差的绝对值。

 

示例 1：


输入：root = [4,2,6,1,3]
输出：1
示例 2：


输入：root = [1,0,48,null,null,12,49]
输出：1

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/minimum-absolute-difference-in-bst
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * */
//中序遍历求
int minV=INT_MAX;
int last=-1;//TODO 一直没过 是这个原因
void getMinimumDifference_d(TreeNode* root) {

    if (!root)return;



    getMinimumDifference_d(root->left);


    if (last!=-1) //TODO 一直没过 是这个原因
    {
        minV= min(minV,root->val-last);
    }


    last=root->val;//赋值前一个

    getMinimumDifference_d(root->right);

}


int getMinimumDifference(TreeNode* root) {
    getMinimumDifference_d(root);

    return minV;

}